package com.mf.entity.dto.basic;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.mf.handlers.ListTypeHandler;
import com.mf.utils.tree.AbstractTreeNode;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.util.List;

/**
 * Base-字典数据内容
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("sys_dic")
public class DtoDic extends AbstractTreeNode<DtoDic, Integer> implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 字典编号
     */

    private String dicCode;
    /**
     * 字典值
     */

    private String dicValue;

    private String valueType;
    /**
     * 前端标签颜色
     */
    private String tagType;

    /**
     * 参数字段,用于记录字典值的部分特殊属性
     */

    private String dicName;
    /**
     * 级联父ID
     */

    private Integer pid;
    /**
     * 显示顺序(越大越前)
     */

    private Integer sort;
    /**
     * 系统标识,1无法删除或编辑
     */

    private Integer flagSystem;
    /**
     * 状态,1启用 0禁用
     */

    private Integer status;
    /**
     * 备注
     */

    private String remark;
    /**
     *
     */
    @TableId

    private Integer id;
    /**
     * 角色列表（可操作的的角色id数组集合）不设置所有角色可操作
     */

    @TableField(typeHandler = ListTypeHandler.class)
    private List<Integer> roleList;

    /**
     * 可操作角色名称集合
     */
    @TableField(exist = false)
    private List<String> roleNameList;
    /**
     * 创建时间
     */

    private LocalDateTime createdTime;
    /**
     * 更新时间
     */

    private LocalDateTime updateTime;

}
